// 1. 安装mongoose
// npm i mongoose
// 2. 导入mongoose
const mongoose = require('mongoose');
// 3. 连接mongodb 服务
mongoose.connect('mongodb://127.0.0.1:27017/bilibili');

// 4.设置回调
/**
 * once 绑定事件执行一次
 * on   绑定事件会一直存在
*/
// 设置成功回调
mongoose.connection.once('open', () => {
  console.log('连接成功')
  // 5.创建文档的结构对象(设置对象数据类型格式)
  let BookSchema = new mongoose.Schema({
    name: {
      type: String,
      required: true, //判断该字段必填
      unique: false//设置该字段独一无二（需要重建集合才有效果）
    },
    author: {
      type: String,
      default: '异名', //默认值
    },
    style: {
      type: String,
      enum: ['言情', '怪兽'],//必须是里面其中一个数据
    },
    price: Number,
  });

  // 6.创建模型对象
  let BookModel = mongoose.model('books', BookSchema);

  //7. 读取文档
  // 读取单条
  // BookModel.findOne({ name: '西游记6' }).then((data, err) => {
  //   if (err) {
  //     console.log('读取失败', err)
  //     return false;
  //   }
  //   console.log('读取成功', data)
  // })
  // 根据ID获取文档
  // BookModel.findById('65dc3a0626ea3c612574066a').then((data, err) => {
  //   if (err) {
  //     console.log('读取失败', err)
  //     return false;
  //   }
  //   console.log('读取成功', data)
  // })
  // 批量获取 find()里面可以不带参数，默认查询全部
  BookModel.find({ author: '张黑娃-' }).then((data, err) => {
    if (err) {
      console.log('读取失败', err)
      return false;
    }
    console.log('读取成功', data)
  })
})

// 设置错误回调
mongoose.connection.on('error', () => {

})

// 设置关闭回调
mongoose.connection.on('close', () => {

})

